﻿#include "MainWindow.h"
#include "ui_MainWindow.h"
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    m_pICDMGT = new ICDManagement();
    m_pAnalysisPlanMGT = new AnalysisPlanManagement();

    connect(m_pICDMGT,&ICDManagement::openAnalysisPlanMGT,this,&MainWindow::recvICDMGT);  //解析方案管理控件
}

//析构
MainWindow::~MainWindow()
{
    delete ui;
}

//接收登录打开主界面的信号
void MainWindow::openICDSlot()
{
    this->show();
    SwitchWidget(ICD_MGT,NO_WIDGET);  //打开ICD管理控件
    emit openICDSuccessSignal();
}

///
/// \brief MainWindow::recvICDMGT
/// \param openModule 须打开的窗口
/// \param closeModule 须关闭的窗口
///接收ICD管理控件的信号
void MainWindow::recvICDMGT(CustomModule openModule, CustomModule closeModule)
{
    SwitchWidget(openModule,closeModule);  //打开解析方案管理控件，关闭ICD管理控件
}

///
/// \brief MainWindow::SwitchWidget 切换窗口
/// \param openModule 须打开的窗口
/// \param closeModule 须关闭的窗口
///切换窗口
void MainWindow::SwitchWidget(CustomModule openModule, CustomModule closeModule)
{
    //打开控件
    switch (openModule) {
    case NO_WIDGET:
        break;
    case ICD_MGT:
        ui->verticalLayout->addWidget(m_pICDMGT);  //添加“ICD管理”自定义控件
        break;
    case ANA_MGT:
        break;
    case ANA_PLAN_MGT:
        ui->verticalLayout->addWidget(m_pAnalysisPlanMGT);  //添加“解析方案”自定义控件
        break;
    default:
        break;
    }

    //关闭控件
    switch (closeModule) {
    case NO_WIDGET:
        break;
    case ICD_MGT:
        m_pICDMGT->setParent(NULL);
        ui->verticalLayout->removeWidget(m_pICDMGT);  //关闭“ICD管理”控件
        break;
    case ANA_MGT:
        break;
    case ANA_PLAN_MGT:
        m_pAnalysisPlanMGT->setParent(NULL);
        ui->verticalLayout->removeWidget(m_pAnalysisPlanMGT);  //关闭“解析方案”控件
        break;
    default:
        break;
    }
}
